#include <stdio.h>
#include <stdlib.h>
#include "fichiers.h"
#include "init.h"


int sauvegarder(char *fichier, champs c){
	FILE* f = fopen(fichier,"w+"); //par defaut on ecrase la sauvegarde 
	int i,j;
	if(!f)
	{
		return 0;
	}
	// ============ Sauvegarde  des parametres du jeu =================
	fprintf(f , "%d %d %d\n",c->nb_lignes, c->nb_colonnes,c->nb_erreurs_restant);
	for(  i = 0; i < c->nb_lignes; i += 1 )
		for( j = 0; j < c->nb_colonnes ; j += 1 )
		// ============= sauvegarde de la matrice du jeu ===============
		
		/*Format de sauvegarde : 
			des couples (statut ; mines) pour designer les champs 
		 */
			fprintf(f, "%d;%d ",c->tab[indice(c,i,j)].status,c->tab[indice(c,i,j)].mine);
	fclose(f);
	return 1;
}


champs lire(char *fichier,int* case_ss_mine){
	
	FILE* f = fopen(fichier,"r");
	int ligne , col ,err ,stat, mine ,i,j;
	champs c = (champs) malloc(sizeof(str_champs));
	if(!f)
	{
		return NULL;
	}
	*case_ss_mine =0 ;	
	
	//============ RECUPERATION DES PARAMETRES DU JEU =================
	
	fscanf(f , "%d %d %d\n",&ligne, &col,&err);
	c->nb_lignes = ligne ;
	c->nb_colonnes = col ;
	c->nb_erreurs_restant = err ;
	
	//==============RECUPERATION DE LA MATRICE DU JEU =================
	
	c->tab = (parcelle*) malloc(ligne*col*sizeof(parcelle));
	for(  i = 0; i < c->nb_lignes; i += 1 )
		for( j = 0; j < c->nb_colonnes ; j += 1 ){
			fscanf(f, "%d;%d ",&stat,&mine);
			c->tab[indice(c,i,j)].status = stat ;
			c->tab[indice(c,i,j)].mine = mine ;
			if(!mine && stat == PASVU)
			{
				*case_ss_mine = *case_ss_mine + 1 ;
			}
		}
	fclose(f);
	return c ;
}


